import { requestClient } from '#/api/request';

/**
 * 补贴配置管理相关API
 */

// 补贴配置项
export interface SubsidyConfigItem {
  /** 配置ID */
  id: number;
  /** 区域类型：in(省内)、out(省外) */
  areaType: 'in' | 'out';
  /** 区域类型显示文本 */
  areaTypeText: string;
  /** 每公里补贴金额 */
  amount: number;
  /** 生效时间 */
  effectiveDate: string;
  /** 状态：enable(启用)、disable(停用) */
  status: 'disable' | 'enable';
  /** 状态显示文本 */
  statusText: string;
}

// 补贴配置列表响应
export interface GetSubsidyConfigResponse {
  /** 数据列表 */
  list: SubsidyConfigItem[];
  /** 总条数 */
  total: number;
}

// 新增补贴配置参数
export interface CreateSubsidyConfigParams {
  /** 区域类型：in(省内)、out(省外) */
  areaType: 'in' | 'out';
  /** 每公里补贴金额 */
  amount: number;
  /** 生效时间 */
  effectiveDate: string;
}

// 编辑补贴配置参数
export interface UpdateSubsidyConfigParams {
  /** 每公里补贴金额 */
  amount: number;
  /** 生效时间 */
  effectiveDate: string;
}

// 切换状态参数
export interface ToggleSubsidyStatusParams {
  /** 目标状态：enable(启用)、disable(停用) */
  status: 'disable' | 'enable';
}

// 分页参数
export interface PaginationParams {
  /** 页码 */
  page: number;
  /** 每页条数 */
  pageSize: number;
}

/**
 * 获取补贴配置列表
 */
export function getSubsidyConfigList(
  params: PaginationParams,
): Promise<GetSubsidyConfigResponse> {
  return requestClient.get<GetSubsidyConfigResponse>('/subsidy-config', {
    params,
  });
}

/**
 * 新增补贴配置
 */
export function createSubsidyConfig(
  data: CreateSubsidyConfigParams,
): Promise<SubsidyConfigItem> {
  return requestClient.post<SubsidyConfigItem>('/subsidy-config', data);
}

/**
 * 编辑补贴配置
 */
export function updateSubsidyConfig(
  id: number,
  data: UpdateSubsidyConfigParams,
): Promise<{ success: boolean }> {
  return requestClient.put<{ success: boolean }>(`/subsidy-config/${id}`, data);
}

/**
 * 切换补贴配置状态
 */
export function toggleSubsidyConfigStatus(
  id: number,
  data: ToggleSubsidyStatusParams,
): Promise<{ success: boolean }> {
  return requestClient.put<{ success: boolean }>(
    `/subsidy-config/${id}/status`,
    data,
  );
}
